home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 029a / lite411q.zip / LITEDEMO.BAS < prev    next >
BASIC Source File  |  1991-07-25  |  10KB  |  360 lines

  1. DECLARE SUB mouseDemo ()
  2. DECLARE SUB zoomDemo ()
  3. DECLARE FUNCTION RAND% ()
  4. DECLARE SUB moveDemo ()
  5. DECLARE SUB panDemo ()
  6.  
  7. '============================================================================
  8. '
  9. '                  LITEDEMO.BAS -  ProWindows(tm) LITE 4.1
  10. '              (c) Copyright 1988-1991 DSE Software Publishing
  11. '
  12. '==========================================================================
  13. '
  14. '    To make use of this demonstration program, you must load BASIC
  15. '    EXATCLY as follows:
  16. '
  17. '         QB LDEMO1 /AH /L LITEDEMO               (for QuickBASIC)
  18. '         QBX LDEMO1 /AH /EA /L LITEDEMO          (for BASIC PDS 7)
  19. '
  20. '==========================================================================
  21.  
  22. REM $DYNAMIC
  23.  
  24. ' =======================================================================
  25. ' These constants should be defined in ALL applications, whether or not
  26. ' they are actually used.  If a particular module will not be used, define
  27. ' the appropraite as '0'.
  28. ' =======================================================================
  29.  
  30. CONST WINMEMSIZE% = 8191           ' Window memory, used by 'VirMem%()'
  31. CONST SCRNMEMSIZE% = 4096          ' Screen storage memory, used by 'scrn%()'
  32. CONST MAXWINDOWS% = 30             ' Maximum number of windows
  33.  
  34. ' =======================================================================
  35. ' INCLUDE modules should follow
  36. ' =======================================================================
  37.  
  38. REM $INCLUDE: 'lite.bi'
  39.  
  40. CLEAR , , 4096                     ' Set aside additional stack space
  41.  
  42. ' =======================================================================
  43. ' Be sure to DIM your variables
  44. ' =======================================================================
  45.  
  46. DIM SHARED VirMem(WINMEMSIZE) AS INTEGER
  47. DIM SHARED scrn(SCRNMEMSIZE) AS INTEGER
  48. DIM SHARED vcb(MAXWINDOWS) AS vircb
  49. DIM SHARED wcb(MAXWINDOWS) AS wincb
  50. DIM SHARED wcbndx(MAXWINDOWS) AS INTEGER
  51.  
  52. ' =======================================================================
  53. ' Program initialization code
  54. ' =======================================================================
  55.  
  56.      ReCycleMode 1                           ' enable "Video Recycling" saves 24K
  57.  
  58.      InitPro                                 ' initialize ProWindows
  59.  
  60.      MouseInstalled = CheckMouse(buttons)
  61.      MouseCursorOff
  62.  
  63. ' =======================================================================
  64. ' Your code goes here
  65. ' =======================================================================
  66.  
  67. ' =======================================================================
  68. ' Remove next two "REM" statements for simulated monochrome mode
  69. ' =======================================================================
  70.  
  71.      REM SetBWmode ENABLE
  72.      REM SetMonitorColor 6   '1 is blue, 2 is green, 6 is amber, etc...
  73.  
  74. MainMenu:
  75.  
  76.      FillScreen 1, 1, 25, 80, attr(0, 1), 176, SNOW
  77.  
  78.      MouseCursorOn
  79.  
  80.      Notice
  81.      Win1 = CurrentWindow
  82.  
  83.      panDemo
  84.      moveDemo
  85.      zoomDemo
  86.      mouseDemo
  87.  
  88.      MouseCursorOff
  89.  
  90. REM $STATIC
  91. SUB mouseDemo
  92.  
  93.      QuickKey 1, CHR$(0) + CHR$(60)     ' F2
  94.      QuickKey 2, CHR$(0) + CHR$(61)     ' F3
  95.      QuickKey 3, CHR$(0) + CHR$(62)     ' F4
  96.      QuickKey 4, CHR$(0) + CHR$(45)     ' Alt-X
  97.  
  98.      SetCalendar 0, 25, 2, 79, 1
  99.      SetClock 0, 25, 15, 79, 1
  100.  
  101.      GlobalOptions = SELECTABLE + DRAGBAR + OFFBUTTON + AUTOCLOSE + RESIZEBUTTON
  102.  
  103.      OpenWindow 1, 15, 37, attr(0, 7), 1, 1, 1, GlobalOptions
  104.      OpenWindow 2, 15, 37, attr(7, 1), 1, 1, 1, GlobalOptions
  105.      OpenWindow 3, 15, 37, attr(15, 4), 1, 1, 1, GlobalOptions
  106.      OpenWindow 4, 15, 37, attr(15, 2), 1, 1, 1, GlobalOptions
  107.      OpenWindow 5, 15, 37, attr(15, 5), 1, 1, 1, GlobalOptions
  108.  
  109.      FOR x = 1 TO 5
  110.           setWindow x
  111.           wcprint 6, "Manipulate me with a mouse!"
  112.           cwcprint 7, 30, "ALT-X to Quit"
  113.           titleWindow 4, " Window" + STR$(x) + " "
  114.      NEXT
  115.  
  116.      DisplayWindow 1, 2, 10, 15, 37
  117.      DisplayWindow 2, 4, 15, 15, 37
  118.      DisplayWindow 3, 6, 20, 15, 37
  119.      DisplayWindow 4, 8, 25, 15, 37
  120.      DisplayWindow 5, 10, 30, 15, 37
  121.  
  122.      DO
  123.  
  124.           SELECT CASE GetEvent(0)
  125.                CASE 16             ' <ESC>
  126.                     GOTO quitMouseDemo
  127.                CASE 19
  128.                     GOSUB QuickKeyEvent
  129.                CASE ELSE
  130.  
  131.           END SELECT
  132.  
  133.      LOOP
  134.  
  135.  
  136. QuickKeyEvent:
  137.  
  138.      QuickEventNo = GetEvent(19)
  139.  
  140.      SELECT CASE QuickEventNo
  141.           CASE 1, 2, 3
  142.                PopWindow 0, 0, 5, 40, 112, 1, 1, 1
  143.                wcprint 2, "You pressed Quick Key #" + STR$(QuickEventNo)
  144.                SLEEP 1
  145.                RemoveWindow
  146.           CASE 4
  147.                GOTO quitMouseDemo
  148.           CASE ELSE
  149.  
  150.      END SELECT
  151.  
  152.      RETURN
  153.  
  154. quitMouseDemo:
  155.  
  156.      FOR x = 5 TO 1 STEP -1
  157.           CloseWindow x
  158.      NEXT
  159.  
  160. END SUB
  161.  
  162. SUB moveDemo
  163.  
  164.      SoundMode = GLISANDO          ' this is what makes the "chirp" sound
  165.  
  166.      OpenWindow 1, 15, 37, attr(0, 7), 1, 1, 1, GlobalOptions
  167.      OpenWindow 2, 15, 37, attr(7, 1), 1, 1, 1, GlobalOptions
  168.      OpenWindow 3, 15, 37, attr(15, 4), 1, 1, 1, GlobalOptions
  169.      OpenWindow 4, 15, 37, attr(15, 2), 1, 1, 1, GlobalOptions
  170.      OpenWindow 5, 15, 37, attr(15, 5), 1, 1, 1, GlobalOptions
  171.  
  172.      FOR x = 1 TO 5
  173.           setWindow x
  174.           titleWindow 1, "Window" + STR$(x)
  175.      NEXT
  176.  
  177.      DisplayWindow 1, 2, 10, 15, 37
  178.      DisplayWindow 2, 4, 15, 15, 37
  179.      DisplayWindow 3, 6, 20, 15, 37
  180.      DisplayWindow 4, 8, 25, 15, 37
  181.      DisplayWindow 5, 10, 30, 15, 37
  182.  
  183.      WHILE INKEY$ = ""
  184.  
  185.           Handle = ABS(RAND) MOD 4 + 1
  186.           row = ABS(RAND) MOD 15 + 1
  187.           col = ABS(RAND) MOD 40 + 1
  188.  
  189.           MoveWindow Handle, row, col
  190.  
  191.           Handle = ABS(RAND) MOD 4 + 1
  192.  
  193.           MainWindow Handle
  194.  
  195.      WEND
  196.  
  197.      FOR Handle = 1 TO 5
  198.           CloseWindow Handle
  199.      NEXT
  200.  
  201. END SUB
  202.  
  203. DEFSNG A-Z
  204. SUB panDemo
  205.  
  206.      DEFINT A-Z
  207.      
  208.      SoundMode = GLISANDO          ' this is what makes the "chirp" sound
  209.  
  210.      CloneWindow UBOUND(vcb): Win2 = CurrentWindow
  211.      CloneWindow UBOUND(vcb): Win3 = CurrentWindow
  212.  
  213.      vcb(Win2).attr = 31: vcb(Win2).Options = SELECTABLE: vcb(Win2).shadow = 1
  214.      vcb(Win3).attr = 30: vcb(Win3).Options = SELECTABLE: vcb(Win3).shadow = 1
  215.  
  216.      DisplayWindow Win2, 12, 37, 12, 24
  217.      DisplayWindow Win3, 8, 50, 12, 24
  218.  
  219.      row = 1: col = 1: WinSize = 3
  220.  
  221.      WHILE INKEY$ = ""
  222.  
  223.           SELECT CASE WinSize
  224.                CASE 3
  225.                     size = 3
  226.                CASE 12
  227.                     size = -3
  228.                CASE ELSE
  229.           END SELECT
  230.  
  231.           SELECT CASE row
  232.                CASE 1
  233.                     cdirection = 1
  234.                CASE 9
  235.                     rdirection = 0
  236.                     cdirection = -1
  237.                CASE ELSE
  238.           END SELECT
  239.  
  240.           col = col + cdirection
  241.  
  242.           SELECT CASE col
  243.                CASE 1
  244.                     rdirection = -1
  245.                     cdirection = 0
  246.                CASE 55
  247.                     cdirection = 0
  248.                     rdirection = 1
  249.                CASE ELSE
  250.           END SELECT
  251.  
  252.           row = row + rdirection
  253.  
  254.           IF (row = 1) AND (col = 1) THEN
  255.                rdirection = 0
  256.                cdirection = 0
  257.           END IF
  258.  
  259.           RefreshMode DISABLE                ' Speeds Up the next operations
  260.  
  261.           ReAlignWindow Win2, row, col
  262.           ReAlignWindow Win3, row, col
  263.  
  264.           RefreshMode ENABLE                 ' Turn refreshing back on
  265.  
  266.           RefreshWindow Win2                 ' update - starting from Win2
  267.  
  268.      WEND
  269.  
  270.      CloseWindow Win2
  271.      CloseWindow Win3
  272.  
  273.      SoundMode = 0
  274.  
  275. END SUB
  276.  
  277. SUB zoomDemo
  278.  
  279.      OpenWindow 1, 10, 40, attr(7, 4), 1, 1, 1, SELECTABLE
  280.      OpenWindow 2, 10, 40, attr(7, 5), 1, 1, 2, SELECTABLE
  281.      OpenWindow 3, 10, 40, attr(7, 6), 1, 1, 3, SELECTABLE
  282.      OpenWindow 4, 10, 40, attr(7, 1), 1, 1, 4, SELECTABLE
  283.      OpenWindow 5, 10, 40, attr(11, 2), 1, 1, 5, SELECTABLE
  284.      OpenWindow 6, 10, 40, attr(14, 3), 1, 1, 6, SELECTABLE
  285.      OpenWindow 7, 10, 40, attr(15, 7), 1, 1, 7, SELECTABLE
  286.      OpenWindow 8, 10, 40, attr(7, 1), 1, 1, 8, SELECTABLE
  287.      OpenWindow 9, 10, 40, attr(10, 2), 1, 1, 9, SELECTABLE
  288.      OpenWindow 10, 10, 40, attr(15, 3), 1, 1, 10, SELECTABLE
  289.      OpenWindow 11, 10, 40, attr(7, 4), 1, 1, 11, SELECTABLE
  290.  
  291.      FOR WinNo = 1 TO 11
  292.           setWindow WinNo
  293.           titleWindow 1, " Window " + STR$(WinNo) + CHR$(255)
  294.           wcprint 4, "This is ZOOM style" + STR$(WinNo)
  295.      NEXT
  296.  
  297.      SoundMode = GLISANDO          ' this is what makes the "chirp" sound
  298.      SetZoomSpeed 25               ' slow down the zooms a little
  299.  
  300.      DisplayWindow 1, 0, 0, 10, 40
  301.      SLEEP 1
  302.  
  303.      DisplayWindow 2, 1, 1, 10, 40
  304.      DisplayWindow 9, 15, 41, 10, 40
  305.      SLEEP 1
  306.  
  307.      DisplayWindow 4, 1, 41, 10, 40
  308.      DisplayWindow 7, 15, 1, 10, 40
  309.      SLEEP 1
  310.  
  311.      DisplayWindow 3, 1, 0, 10, 40
  312.      DisplayWindow 8, 15, 0, 10, 40
  313.      SLEEP 1
  314.  
  315.      DisplayWindow 5, 0, 1, 10, 40
  316.      DisplayWindow 6, 0, 41, 10, 40
  317.      SLEEP 1
  318.  
  319.      DisplayWindow 10, 5, 10, 10, 40
  320.      DisplayWindow 11, 11, 35, 10, 40
  321.      SLEEP 1
  322.  
  323.      SoundMode = DISABLE
  324.  
  325.      PopWindow 0, 0, 6, 50, 112, 1, 1, 1
  326.      wcprint 2, "Press ANY Key to MOVE windows"
  327.      cwcprint 3, 127, "(Notice Where Each Window Is)"
  328.      WHILE INKEY$ = "": WEND
  329.      RemoveWindow
  330.  
  331.      RefreshMode DISABLE           ' make the moves go faster
  332.  
  333.      MoveWindow 11, 0, 0
  334.      MoveWindow 10, 1, 1
  335.      MoveWindow 9, 1, 0
  336.      MoveWindow 8, 1, 41
  337.      MoveWindow 7, 0, 1
  338.      MoveWindow 6, 0, 41
  339.      MoveWindow 5, 15, 1
  340.      MoveWindow 4, 15, 0
  341.      MoveWindow 3, 15, 41
  342.      MoveWindow 2, 5, 10
  343.      MoveWindow 1, 11, 35
  344.  
  345.      RefreshMode ENABLE                 ' re-enable the refresh
  346.  
  347.      RefreshAllWindows                  ' refresh the display
  348.  
  349.      PopWindow 0, 0, 5, 50, 112, 1, 1, 1
  350.      wcprint 2, "Press ANY Key to CLOSE windows"
  351.      WHILE INKEY$ = "": WEND
  352.      RemoveWindow
  353.  
  354.      FOR WinNo = 11 TO 1 STEP -1
  355.           CloseWindow WinNo
  356.      NEXT
  357.  
  358. END SUB
  359.  
  360.